1. Field of the Invention
This invention relates to an improved method for booting client computers from a server interconnected in a client server network using the DHCP/PXE protocols, and more particularly, to a method that enables the server to load a specific image or utility for a boot requesting client based on the client""s state.
2. Description of the Prior Art
As will be appreciated by those skilled in the art, in a client server network, when a so called xe2x80x9cdisklessxe2x80x9d or xe2x80x9cthin clientxe2x80x9d is powered up, for example, the client executes code within a non-volatile memory within the client. This code causes a server on the network to transfer an image (i.e. operating system software, utility software) to the volatile memory of the client, which image is used by the client until power is interrupted to the client or there is a need to re-boot for some other reason.
As will be appreciated by those skilled in the art, protocol standards for Internet client server networks have been developed and adopted, including protocols for booting a client from a server. Computer networks that use the Internet protocol are commonly referred to as xe2x80x9cIP networks.xe2x80x9d Within IP networks, host systems and other objects are identified as Internet Protocol Addresses (IP addresses). IP addresses provide a simple mechanism for identifying the source and destination of messages sent within IP networks. Increasingly, IP addresses within IP networks are assigned using the dynamic Host configuration Protocol (DHCP) defined in Internet RFC 1541 which is incorporated herein by reference. In networks that use the DHCP protocol, client systems request IP addresses from a DHCP server. The DHCP server allocates an IP address for use by the requesting client system and sends the client a message telling the client system which IP address to use.
The Preboot Execution Environment (PXE) Specification, Version 2.0 dated Dec. 28, 1998 (which is incorporated herein by reference), provides a downloaded Network Bootstrap Programs with a uniform and consistent pre-boot operating environment within the booting client, so it can accomplish its task independent of, for example, the type of network adapter implemented in the system. This capability is useful in enhancing the manageability of the client machine in several situations; for example:
Remote new system setup. If the client does not have an OS installed on its hard disk, or the client has no hard disk at all, downloading a NBP from a server can help automate the OS installation and other configuration steps.
Remote emergency boot. If the client machine fails to boot due to a hardware or software failure, downloading an executable image from a server can provide the client with a specific executable that enables remote problem notification and diagnosis.
Remote network boot. In instances where the client machine has no local storage, it can download its system software image from the server in the course of normal operation.
PXE is defined on a foundation of industry-standard Internet protocols and services that are widely deployed in the industry, namely TCP/IP, DHCP, and TFTP. These standardize the form of the interactions between clients and servers. To ensure that the meaning of the client-server interaction is standardized as well, certain vendor option fields in DHCP protocol are used, which are allowed by the DHCP standard. The operations of standard DHCP and/or BOOT servers (that serve up IP addresses and/or NBPs) will not be disrupted by the use of the extended protocol. Clients and servers that are aware of these extensions will recognize and use this information, and those that do not recognize the extensions will ignore them.
In brief, the PXE protocol operates as follows. The client initiates the protocol by broadcasting a DHCPDISCOVER containing an extension that identifies the request as coming from a client that implements the PXE protocol. Assuming that a DHCP server or a Proxy DHCP server implementing this extended protocol is available, after several intermediate steps, the server sends the client a list of appropriate Boot Servers. The client then discovers a Boot Server of the type selected and receives the name of an executable file on the chosen Boot Server. The client uses TFTP to download the executable from the Boot server. Finally, the client initiates execution of the downloaded image. At this point, the client""s state must meet certain requirements that provide a predictable execution environment for the image. Important aspects of this environment include the availability of certain areas of the client""s main memory, and the availability of basic network I/O services.
In the prior art, the images and utilities downloaded from the server in the operation of booting a client are independent of the boot state of the client.
An object of this invention is the provision of a method that is consistant with existing established protocols and that allows a client to give a DHCP/PXE server more deterministic information about the client in order to allow the server to provide the client with an image taylored to the client.
Briefly, this invention contemplates the use of PXE Frame extension tags for remote boot loading client machines will afford servers deterministic ability for what image or utility the client requires based on its boot state. The invention takes advantage of the PXE frame by using the DHCP/PXE Vendor Tags for providing information to the PXE Server as to what image or boot process is required from the server by the client. This solution is targeted primarily, but not limited to, xe2x80x9cmedia lessxe2x80x9d or xe2x80x9cthin clientsxe2x80x9d. The invention provides the client an ability to give a DHCP/PXE server more deterministic information about itself. The server can use this information (i.e. information contained within the Extension tags) to determine more precisely the client machine""s boot state DHCP/PXE server code parseses the DHCP/PXE extension tags (contained within the DHCP/PXE data frame) and uses the POST error information and/or the Vital Product Data (VPD) to provide the client with a tailored boot image. For example, this tailored image can supply a fix for the client POST error condition that was reported to the Server via the tag containing the POST error information. Conversely, the server can evaluate the VPD information contained within the tag to determine, for example, that the client POST code (firmware) is in need of updating and the server sends the appropriate boot image to the client. Also, the tag information (POST error and VPD) could be used in combination to allow the server to determine even a more appropriate boot image for the requesting client.